para marca
if pcount() = 0
   marca = .f.
else
   marca = .t.
endif
limpa(3,0,24,80,cor,.f.)
limpa(3,0,23,79,cor,.t.)
sele fornece
set order to 2
go top
declare cabeca[13], estrutura[13], mascara[13]
cabeca[1]  = 'CODIGO'   ; estrutura[01] = fiel(01) ; mascara[01] = '99999'
cabeca[2]  = 'NOME'     ; estrutura[02] = fiel(02) ; mascara[02] = '@!'
cabeca[3]  = 'ENDERECO' ; estrutura[03] = fiel(03) ; mascara[03] = '@!'
cabeca[4]  = 'BAIRRO'   ; estrutura[04] = fiel(04) ; mascara[04] = '@!'
cabeca[5]  = 'CIDADE'   ; estrutura[05] = fiel(05) ; mascara[05] = '@!'
cabeca[6]  = 'UF'       ; estrutura[06] = fiel(06) ; mascara[06] = '@!'
cabeca[7]  = 'C.E.P.'   ; estrutura[07] = fiel(07) ; mascara[07] = '@!'
cabeca[8]  = 'C.G.C.'   ; estrutura[08] = fiel(08) ; mascara[08] = '@R 99.999.999/9999-99'
cabeca[9]  = 'INSCRICAO'; estrutura[09] = fiel(09) ; mascara[09] = '@X'
cabeca[10] = 'FONE-1'   ; estrutura[10] = fiel(10) ; mascara[10] = '@R 999-999-9999'
cabeca[11] = 'FONE-2'   ; estrutura[11] = fiel(11) ; mascara[11] = '@R 999-999-9999'
cabeca[12] = 'FAX'      ; estrutura[12] = fiel(12) ; mascara[12] = '@R 999-999-9999'
cabeca[13] = 'CONTATO'  ; estrutura[13] = fiel(13) ; mascara[13] = '@!'
menu(24,0,' Inclui ',2,1)
menu(24,8,'Altera ',1,1)
menu(24,15,'Exclui ',1,1)
menu(24,22,'Relatorio ',1,1)
menu(24,32,'Procura ',1,1)
if marca
   menu(24,40,'Enter-Escolhe Fornecedor ',1,5)
endif
menu(24,72,'Esc-Sai ',1,3)
dbedit(4,1,22,78,estrutura,'for100',mascara,cabeca,.T.)
retu

function for100(modo,coluna)
set cursor on

if modo = 0
   retu(1)
elseif modo = 3
   retu(1)
endif
telalocal=savescreen(4,1,24,80)
tecla = lastkey()
do case
   case tecla = 5 .and. modo = 1

    mensa(10,' Inicio do arquivo ',2)
    retu(2)

   case tecla = 24 .and. modo = 2

    mensa(10,' Final do arquivo ',2)
    retu(2)

   case tecla = 27 .and. marca = .f.

        retu(0)

   case tecla = 13 .and. marca = .t.

        retu(0)

  case tecla = 73 .or. tecla = 105

    do while .t.
     sele fornece
     sombra(8,5,22,77,'Inclusao')
     mnom1 = space(40)
     @ 11,7 say 'Nome     :' get mnom1 pict '@!'
     read
     if empty(mnom1) .or. lastkey() = 27
        exit
     endif
     seek 'afadfadfadfad'
     inicializa()
     mcodigo = fcodigo()
     mnome   = mnom1
     set order to 2
     @ 10,7 say 'Codigo   : ' + strzero(mcodigo,5)
     telafor()
     read
     if confirma(18,60,' 1 - Confirma ',' 2 - Cancela  ')
        if inclusao()
           appe blank
           grava()
           unlock
        endif
     endif
   enddo
   commit
   set order to 1

   retu(2)

   case tecla = 65 .or. tecla = 97

    do while .t.
     sele fornece
     mcodigo = codigo
     sombra(8,5,22,77,' Alteracao ','')
     @ 10,7 say 'Codigo   : ' + strzero(codigo,5)
     inicializa()
     @ 11,7 say 'Nome     :' get mnome pict '@!'
     telafor()
     read
     if confirma(18,60,' 1 - Confirma ',' 2 - Cancela  ')
        if alteracao()
           grava()
           unlock
        endif
     endif
     exit
    enddo
   retu(2)

   case tecla = 69 .or. tecla = 101

     sele fornece
     sombra(8,5,22,77,'Exclusao')
     @ 10,7 say 'Codigo   : ' + strzero(codigo,5)
     @ 11,7 say 'Nome     : ' + nome
     inicializa()
     telafor()
     clear gets
     if confirma(18,55,' 1 - Exclui     ',' 2 - Nao exclui ')
        if alteracao()
           dele
           skip
           unlock
        endif
     endif

   retu(2)

   case tecla = 82 .or. tecla = 114

   if .not. impressora()
      retu(2)
   endif
   simples = .t.
   if .not. confirma(18,50,' 1 - Listagem Simples  ',' 2 - Listagem Completa ')
      simples = .f.
   endif
   sombra(8,5,22,77,' Relatorio ','Esc-Cancela')
   titulo = .t. ; pagina = 1
   sele fornece
   go top
   while .not. eof() .and. esc()
      set devi to screen
      @ 10,7 say 'Codigo : ' + strzero(codigo,5) + ' ' + nome
      set devi to printer
      if titulo
         tit_rela('FORNECEDORES',pagina)
         titulo = .f.
      endif
      if simples
         @ prow()+1,2 say strzero(codigo,5) + ' - ' + nome
      else
         @ prow()+1,2 say 'Fornecedor : ' + strzero(codigo,5) + ' ' + nome
         @ prow()+1,2 say 'Endereco   : ' + Endereco + ' ' + cidade + ' ' + uf
         @ prow()+1,2 say 'Cep        : ' + cep  + '   Fone / Fax : ' + fone1 + ' '+ fone2 + ' ' +  fax 
         @ prow()+1,2 say 'C.G.C.     : ' + cgc + '               Estadual : ' + inscricao
         @ prow()+1,2 say 'Contato    : ' + contato
         @ prow()+1,2 say ''
      endif
      skip
      if prow() > 55
         eject
         titulo = .t.
         pagina+=1
      endif
   enddo
   eject
   sele fornece
   go top
   set devi to screen
   retu(2)

   case tecla = 80 .or. tecla = 112

    sombra(10,6,20,77,'Digite a expressao')
    
    mnome = space(40)
    @ 12,8 say 'Nome   :' get mnome   pict '@!'
    read
    set order to 2
    set softseek on
    seek mnome
    set softseek off
    retu(2)

  otherwise

    retu(1)

endcase


function telafor()
     @ 12,7  say 'Endereco :' get mendereco
     @ 13,7  say 'Cidade   :' get mcidade
     @ 13,43 say 'UF :' get muf pict '@!'
     @ 13,60 say 'CEP :' get mcep pict '@R 99.999-999'
     @ 14,7  say 'Fone-1   :' get mfone1
     @ 14,31 say 'Fone-2 :' get mfone2
     @ 14,58 say 'Fax :' get mfax
     @ 15,7  say 'C.G.C.   :' get mcgc pict '@R 99.999.999/9999-99'
     @ 15,44 say 'Inscricao :' get minscricao
     @ 16,7  say 'Contato  :' get mcontato  pict '@!'
retu





function fcodigo()
sele fornece
set order to 1
go top
mcodigo=1
do while .not. eof()
   if mcodigo=codigo
      mcodigo+=1
      skip
   else 
      exit
   endif
enddo
retu mcodigo



